package com.losrebellos.system
{
	import flash.system.System;

	/**
	 * @author Los Rebellos (Benoit Vinay)
	 */
	public final class Memory
	{
		////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		// STATES
		////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		public static const STATE_WARNING:String	= "Memory/state/warning";
		public static const STATE_ABORT:String		= "Memory/state/abort";
		public static const STATE_NORMAL:String		= "Memory/state/normal";
		
		
		////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		// MEMORY
		////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		public static const MEMORY_WARNING:uint		= 1000 * 1000 * 500;
		public static const MEMORY_ABORT:uint		= 1000 * 1000 * 625;
		
		
		////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		// USAGE
		////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		public static function checkMemoryUsage():String
		{
			if(System.totalMemory > MEMORY_WARNING)
			{
				return STATE_WARNING;
			}
			else if (System.totalMemory > MEMORY_ABORT)
			{
				return STATE_ABORT;
			}
			
			return STATE_NORMAL;
		}
	}
}